home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 February: Technology Seed / Mac Tech Seed Feb '97.toast / ODF Release 3 / ODFDev / ODF / OS / FWGraphx / FWFctInf.cpp < prev    next >
Encoding:
Text File  |  1996-12-16  |  7.2 KB  |  214 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWFctInf.cpp
  4. //    Release Version:    $ ODF 3 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #include "FWOS.hpp"
  11.  
  12. #ifndef FWFCTINF_H
  13. #include "FWFctInf.h"
  14. #endif
  15.  
  16. #ifndef FWPRIDEB_H
  17. #include "FWPriDeb.h"
  18. #endif
  19.  
  20. // ----- OpenDoc Includes -----
  21.  
  22. #ifndef SOM_ODFacet_xh
  23. #include <Facet.xh>
  24. #endif
  25.  
  26. //========================================================================================
  27. //    Runtime Informations
  28. //========================================================================================
  29.  
  30. #ifdef FW_BUILD_MAC    
  31. #pragma segment fwgraphx
  32. #endif
  33.  
  34. //========================================================================================
  35. //    Global Methods
  36. //========================================================================================
  37.  
  38. //----------------------------------------------------------------------------------------
  39. //    FW_PrivCreateFacetPartInfo
  40. //----------------------------------------------------------------------------------------
  41.  
  42. FW_SPrivFacetPartInfo* FW_PrivCreateFacetPartInfo(Environment* ev, ODFacet* facet)
  43. {
  44.     FW_SPrivFacetPartInfo* facetPartInfo     = new FW_SPrivFacetPartInfo;
  45.     facetPartInfo->fMagicNumber1             = (unsigned long)facet;
  46.     facetPartInfo->fMagicNumber2             = (unsigned long)facet->GetFrame(ev);
  47.     facetPartInfo->fDevice                     = FW_PrivGDev_CreateFromODCanvas(ev, facet->GetCanvas(ev));
  48.     facetPartInfo->fHighlight                 = facet->GetHighlight(ev);
  49.     facetPartInfo->fEmbeddedFacetCreated     = FALSE;
  50.     facetPartInfo->fPrintJobInfo             = NULL;
  51.     facetPartInfo->fRefCon                     = 0;
  52.     
  53.     facet->SetPartInfo(ev, (ODInfoType)facetPartInfo);
  54.     
  55.     return facetPartInfo;
  56. }
  57.  
  58. //----------------------------------------------------------------------------------------
  59. //    FW_PrivDeleteFacetPartInfo
  60. //----------------------------------------------------------------------------------------
  61.  
  62. void FW_PrivDeleteFacetPartInfo(Environment* ev, ODFacet* facet)
  63. {
  64.     FW_SPrivFacetPartInfo* partInfo = FW_PrivGetFacetPartInfo(ev, facet);
  65.     
  66.     if (partInfo != NULL)
  67.     {
  68.         FW_PrivGDev_Release(partInfo->fDevice);
  69.         delete partInfo;
  70.         
  71.         facet->SetPartInfo(ev, (ODInfoType)NULL);
  72.     }
  73. }
  74.  
  75. //----------------------------------------------------------------------------------------
  76. //    FW_PrivGetFacetPartInfo
  77. //----------------------------------------------------------------------------------------
  78.  
  79. FW_SPrivFacetPartInfo* FW_PrivGetFacetPartInfo(Environment* ev, ODFacet* facet)
  80. {
  81.     FW_SPrivFacetPartInfo* partInfo = (FW_SPrivFacetPartInfo*)facet->GetPartInfo(ev);
  82.     
  83.     // ----- If partInfo is NULL or doesn't have the right magic number, facet ------
  84.     // ----- was not one of our facet (This can appended in FW_CWindowContext) -----
  85.     if (partInfo == NULL || 
  86.         partInfo->fMagicNumber1 != (unsigned long)facet ||
  87.         partInfo->fMagicNumber2 != (unsigned long)facet->GetFrame(ev))
  88.         return NULL;
  89.     
  90.     return partInfo;
  91. }
  92.  
  93. //----------------------------------------------------------------------------------------
  94. //    FW_GetFacetGraphicDevice
  95. //----------------------------------------------------------------------------------------
  96.  
  97. FW_HGDevice FW_GetFacetGraphicDevice(Environment* ev, ODFacet* facet)
  98. {
  99.     FW_SPrivFacetPartInfo* partInfo = FW_PrivGetFacetPartInfo(ev, facet);
  100.     return partInfo ? partInfo->fDevice : NULL;
  101. }
  102.  
  103. //----------------------------------------------------------------------------------------
  104. //    FW_GetFacetRefCon
  105. //----------------------------------------------------------------------------------------
  106.  
  107. unsigned long FW_GetFacetRefCon(Environment* ev, ODFacet* facet)
  108. {
  109.     FW_SPrivFacetPartInfo* partInfo = FW_PrivGetFacetPartInfo(ev, facet);
  110.     return partInfo ? partInfo->fRefCon : 0;
  111. }
  112.  
  113. //----------------------------------------------------------------------------------------
  114. //    FW_SetFacetRefCon
  115. //----------------------------------------------------------------------------------------
  116.  
  117. void FW_SetFacetRefCon(Environment* ev, ODFacet* facet, unsigned long refCon)
  118. {
  119.     FW_SPrivFacetPartInfo* partInfo = FW_PrivGetFacetPartInfo(ev, facet);
  120.     if (partInfo)
  121.         partInfo->fRefCon = refCon;
  122. #ifdef FW_DEBUG
  123.     else
  124.         FW_DEBUG_MESSAGE("Trying to set the Facet Part Info of a non-display facet");
  125. #endif
  126. }
  127.  
  128. //----------------------------------------------------------------------------------------
  129. //    FW_PrivGetFacetHighlight
  130. //----------------------------------------------------------------------------------------
  131.  
  132. ODHighlight FW_PrivGetFacetHighlight(Environment* ev, ODFacet* facet)
  133. {
  134.     FW_SPrivFacetPartInfo* partInfo = FW_PrivGetFacetPartInfo(ev, facet);
  135.     if (partInfo)
  136.         return partInfo->fHighlight;
  137.     else
  138.     {
  139.         FW_DEBUG_MESSAGE("Trying to get the highlight of a non-display facet");
  140.         return kODNoHighlight;
  141.     }
  142. }
  143.  
  144. //----------------------------------------------------------------------------------------
  145. //    FW_PrivSetFacetHighlight
  146. //----------------------------------------------------------------------------------------
  147.  
  148. void FW_PrivSetFacetHighlight(Environment* ev, ODFacet* facet, ODHighlight highlight)
  149. {
  150.     FW_SPrivFacetPartInfo* partInfo = FW_PrivGetFacetPartInfo(ev, facet);
  151.     if (partInfo)
  152.         partInfo->fHighlight = highlight;
  153. #ifdef FW_DEBUG
  154.     else
  155.         FW_DEBUG_MESSAGE("Trying to set the highlight of a non-display facet");
  156. #endif
  157. }
  158.  
  159. //----------------------------------------------------------------------------------------
  160. //    FW_PrivAreEmbeddedFacetsCreated
  161. //----------------------------------------------------------------------------------------
  162.  
  163. FW_Boolean FW_PrivAreEmbeddedFacetsCreated(Environment* ev, ODFacet* facet)
  164. {
  165.     FW_SPrivFacetPartInfo* partInfo = FW_PrivGetFacetPartInfo(ev, facet);
  166.     if (partInfo)
  167.         return partInfo->fEmbeddedFacetCreated;
  168.     else
  169.     {
  170.         FW_DEBUG_MESSAGE("Trying to get the highlight of a non-display facet");
  171.         return FALSE;
  172.     }
  173. }
  174.  
  175. //----------------------------------------------------------------------------------------
  176. //    FW_PrivEmbeddedFacetsCreated
  177. //----------------------------------------------------------------------------------------
  178.  
  179. void FW_PrivEmbeddedFacetsCreated(Environment* ev, ODFacet* facet, FW_Boolean state)
  180. {
  181.     FW_SPrivFacetPartInfo* partInfo = FW_PrivGetFacetPartInfo(ev, facet);
  182.     if (partInfo)
  183.         partInfo->fEmbeddedFacetCreated = state;
  184. #ifdef FW_DEBUG
  185.     else
  186.         FW_DEBUG_MESSAGE("Trying to set the highlight of a non-display facet");
  187. #endif
  188. }
  189.  
  190. //----------------------------------------------------------------------------------------
  191. //    FW_PrivSetFacetPrintJobInfo
  192. //----------------------------------------------------------------------------------------
  193.  
  194. void FW_PrivSetFacetPrintJobInfo(Environment* ev, ODFacet* facet, FW_CPrintJobInfo* info)
  195. {
  196.     FW_SPrivFacetPartInfo* partInfo = FW_PrivGetFacetPartInfo(ev, facet);
  197.     if (partInfo)
  198.         partInfo->fPrintJobInfo = info;
  199. #ifdef FW_DEBUG
  200.     else
  201.         FW_DEBUG_MESSAGE("Trying to set the print job info of a non-display facet");
  202. #endif
  203. }
  204.  
  205. //----------------------------------------------------------------------------------------
  206. //    FW_GetFacetPrintJobInfo
  207. //----------------------------------------------------------------------------------------
  208.  
  209. const FW_CPrintJobInfo* FW_GetFacetPrintJobInfo(Environment* ev, ODFacet* facet)
  210. {
  211.     FW_SPrivFacetPartInfo* partInfo = FW_PrivGetFacetPartInfo(ev, facet);
  212.     return partInfo ? partInfo->fPrintJobInfo : NULL;
  213. }
  214.